import ttkbootstrap as ttk
from code.pages import info, worker
from PIL import Image, ImageTk


def switch_to_page1():
    """切换回页面1"""
    page2_frame.pack_forget()
    page1_frame.pack(fill="both", expand=True)

# 弹窗
def create_popup():
    # 创建一个新窗口作为弹出窗口
    popup = ttk.Toplevel()
    popup.title("Popup Window")

    # 设置弹出窗口的几何位置
    popup.geometry("400x400")

    # 在弹出窗口中添加一个标签
    label = ttk.Label(popup, text="这是一个弹出窗口")
    label.pack(pady=20)

    # 添加一个按钮，用于关闭弹出窗口
    button = ttk.Button(popup, text="关闭", command=popup.destroy)
    button.pack()

if __name__ == "__main__":
    # 创建主窗口
    root = ttk.Window(themename="flatly")
    root.title("Enhanced GUI with Page Switching")
    root.geometry("600x600")  # 增大窗口高度
    # 页面1
    page1_frame = ttk.Frame(root)
    page1_frame.pack(fill="both", expand=True)



    # 项目 1
    product1_frame = ttk.Frame(page1_frame, bootstyle="info")
    # expand = True 会填满父级的空间，并且随着窗口的拖动，改变大小
    product1_frame.pack(fill="x")
    # 配置列权重
    # 右列 把剩余的空间全部占了，所以就留出了足够的空间给图片放到最右侧
    product1_frame.grid_columnconfigure(2, weight=1)



    # 创建一个按钮，用于触发弹出窗口
    button = ttk.Button(product1_frame, text="查看数据库配置", command=info.pop_info)
    button.grid(row=0, column=0, padx=2, pady=4)
    button2 = ttk.Button(product1_frame, text="接口文档", command=worker.pop_worker)
    button2.grid(row=0, column=1, padx=2, pady=4)

    # 图片
    # image_frame = ttk.Frame(page1_frame, bootstyle="info")
    # image_frame.pack(fill="x")
    # 加载图片只支持png，gif
    img_path = "./images/ddlm.png"  # 替换为你的图片路径
    # 使用 Pillow 加载图片
    img = Image.open(img_path)
    # 调整图片大小
    img = img.resize((64, 64), Image.Resampling.LANCZOS)  # 设置图片宽度300，高度20
    photo = ImageTk.PhotoImage(img)
    # photo = PhotoImage(file=img_path)
    # 创建一个Label，并设置图片
    label = ttk.Label(product1_frame, image=photo)
    label.grid(row=0, column=2,padx=2, pady=2, sticky="e") # e 靠右对齐; sticky="w" 靠左对齐



    # 添加切换按钮
    # switch_button_to_page2 = ttk.Button(page1_frame, text="Go to Page 2", command=switch_to_page2, bootstyle="info")
    # switch_button_to_page2.pack(pady=20)

    # 页面2
    page2_frame = ttk.Frame(root)
    ttk.Label(page2_frame, text="This is Page 2", font=("Arial", 14)).pack(pady=20)
    ttk.Button(page2_frame, text="Go back to Page 1", command=switch_to_page1, bootstyle="primary").pack(pady=10)

    # 启动主循环
    root.mainloop()
